package com.cloudkinto.service.user.wxvo;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * @author zhujiale
 * @description 微信模板推送req
 * @date 2022/12/15
 */
@Data
public class WxTemplatePushReq {
    /**
     * 重载构造方法后会覆盖掉默认隐藏的无参构造方法 手动补上
     */
    public WxTemplatePushReq() {
    }

    //@ApiModelProperty("模板抬头提示 处理写死 不展示给外部接口使用")
    //private String first;

    @ApiModelProperty("备注通用")
    private String remark;

    @ApiModelProperty("要发送给的用户id集合")
    private List<Long> userIdList;

    @ApiModelProperty("模板类型 服务层处理客户端无需传入")
    private Integer templateType;

    @ApiModelProperty("map 参数用于公众号跳转到小程序")
    private Map<String, String> map;


    /************商品出库提醒************/
    public WxTemplatePushReq(List<Long> userIdList,Map<String, String> map, String productName, Integer outputNum, String outputDate, String outputAddress, String outputRemark, String remark) {
        this.userIdList = userIdList;
        this.map = map;
        this.productName = productName;
        this.outputNum = outputNum;
        this.outputDate = outputDate;
        this.outputAddress = outputAddress;
        this.outputRemark = outputRemark;
        this.remark = remark;
        this.templateType = 1;
    }
    @ApiModelProperty("商品名称")
    private String productName;

    @ApiModelProperty("出货数量")
    private Integer outputNum;

    @ApiModelProperty("出货时间")
    private String outputDate;

    @ApiModelProperty("出货地址")
    private String outputAddress;

    @ApiModelProperty("备注")
    private String outputRemark;


    /************问题处理进度提醒************/
    public WxTemplatePushReq(List<Long> userIdList,Map<String, String> map, String serviceType, String dealStatus, String consultContent, String warmTip, String remark) {
        this.userIdList = userIdList;
        this.map = map;
        this.serviceType = serviceType;
        this.dealStatus = dealStatus;
        this.consultContent = consultContent;
        this.warmTip = warmTip;
        this.remark = remark;
        this.templateType = 2;
    }
    @ApiModelProperty("服务类型")
    private String serviceType;

    @ApiModelProperty("处理状态")
    private String dealStatus;

    @ApiModelProperty("咨询内容")
    private String consultContent;

    @ApiModelProperty("温馨提示")
    private String warmTip;


    /************订单进度进度提醒（第一种）************/
    //特别说明 因为构造函数参数列表格式相同 顾最后加了一个noNeed参数,传Long类型的任意值 用于判断是哪个 非常重要
    public WxTemplatePushReq(List<Long> userIdList,Map<String, String> map, String orderStatus1, String orderType1, String orderNum1, String tradingTime, String remark, Long orderProgress) {
        this.userIdList = userIdList;
        this.map = map;
        this.orderStatus1 = orderStatus1;
        this.orderType1 = orderType1;
        this.orderNum1 = orderNum1;
        this.tradingTime = tradingTime;
        this.remark = remark;
        this.templateType = 3;
    }
    @ApiModelProperty("订单状态")
    private String orderStatus1;

    @ApiModelProperty("订单类型")
    private String orderType1;

    @ApiModelProperty("订单编号")
    private String orderNum1;

    @ApiModelProperty("交易时间")
    private String tradingTime;


    /************工单进度通知************/
    //特别说明 因为构造函数参数列表格式相同 顾最后加了一个noNeed参数,传Integer类型的任意值 用于判断是哪个模板请求体 非常重要
    public WxTemplatePushReq(List<Long> userIdList,Map<String, String> map, String workOrderNum, String workOrderDesc, String workOrderProgress, String workOrderDealPerson, String remark, Integer workOrder) {
        this.userIdList = userIdList;
        this.map = map;
        this.workOrderNum = workOrderNum;
        this.workOrderDesc = workOrderDesc;
        this.workOrderProgress = workOrderProgress;
        this.workOrderDealPerson = workOrderDealPerson;
        this.remark = remark;
        this.templateType = 4;
    }
    @ApiModelProperty("工单编号")
    private String workOrderNum;

    @ApiModelProperty("工单描述")
    private String workOrderDesc;

    @ApiModelProperty("工单进度")
    private String workOrderProgress;

    @ApiModelProperty("工单处理人")
    private String workOrderDealPerson;


    /************账户余额提醒************/
    public WxTemplatePushReq(List<Long> userIdList,Map<String, String> map, String accountBalance, String deadline,  String remark) {
        this.userIdList = userIdList;
        this.map = map;
        this.accountBalance = accountBalance;
        this.deadline = deadline;
        this.remark = remark;
        this.templateType = 5;
    }
    @ApiModelProperty("账户余额 string型,建议传上币种 例如260000.01元")
    private String accountBalance;

    @ApiModelProperty("截止时间")
    private String deadline;


    /************订单进度进度提醒（第二种）************/
    public WxTemplatePushReq(List<Long> userIdList,Map<String, String> map, String orderStatus2, String orderType2, String orderAmount, String orderDetail, String orderNum2, String remark) {
        this.userIdList = userIdList;
        this.map = map;
        this.orderStatus2 = orderStatus2;
        this.orderType2 = orderType2;
        this.orderAmount = orderAmount;
        this.orderDetail = orderDetail;
        this.orderNum2 = orderNum2;
        this.remark = remark;
        this.templateType = 6;
    }
    @ApiModelProperty("订单状态")
    private String orderStatus2;

    @ApiModelProperty("订单类型")
    private String orderType2;

    @ApiModelProperty("订单金额 string型,建议传上币种 例如260000.01元")
    private String orderAmount;

    @ApiModelProperty("订单详情")
    private String orderDetail;

    @ApiModelProperty("订单编号")
    private String orderNum2;



}
